// 导入vue
import Vue from 'vue';
// 导入vuex
import Vuex from 'vuex';
// 导入持久化存储插件
import createPersistedState from 'vuex-persistedstate';
// 导入注册好的模块
import search from './modules/search.js';

// 在Vue中应用插件/注册插件
Vue.use( Vuex );

//配置对象
const store = new Vuex.Store({
	// 状态：存储共享的数据
	state: {},
	// 创建同步函数，主要作用：修改state内部的数据【类似组件 methods】
	mutations: {},
	// 创建异步函数，主要作用：先被组件调用，然后在函数内部调用 mutations的同步函数
	actions: {},
	
	// 设置数据：不改变state数据，return返回另外一个形式【类似组件 computed】
	getters: {},
	// 设置模块开发：指向按照功能将数据分别进行不同的模块
	// 跟注册登陆相关的数据划分一个模块；购物车相关的数据一个模块；订单数据一个模块【数据量庞大且操作较多的功能区域】
	modules: {
		// 应用注册的搜索模块
		search
	},
	
	//设置store持久化存储，与本地缓存同步
	plugins: [ createPersistedState() ]
})

// 导出
export default store;